// 引入axios
import axios from 'axios';
import { resolve } from 'chart.js/helpers';
let baseURL = 'http://127.0.0.1:8083';
// 创建axios实例
const httpService = axios.create({
    headers: {  
        'Content-Type': 'application/json'  
    }  ,
    // 请求超时时间
    timeout: 60000, // 需自定义
  
});
 
const APILogin=`${baseURL}/system/record/login`;
//const listOperation=`${baseURL}/system/operation/listOperation`;
// request拦截器
httpService.interceptors.request.use(
    config => {
        console.log(config.url);
        return config;
    },
    error => {
        // 请求错误处理
        Promise.reject(error);
    }
)
// respone拦截器
httpService.interceptors.response.use(
    response => {
            return response.data;
    },
    // 处理处理
    error => {
        if (error && error.response) {
            switch (error.response.status) {
                case 400:
                    error.message = '错误请求';
                    break;
                case 401:
                    error.message = '未授权，请重新登录';
                    break;
                case 403:
                    error.message = '拒绝访问';
                    break;
                case 404:
                    error.message = '请求错误,未找到该资源';
                    break;
                case 405:
                    error.message = '请求方法未允许';
                    break;
                case 408:
                    error.message = '请求超时';
                    break;
                case 500:
                    error.message = '服务器端出错';
                    break;
                case 501:
                    error.message = '网络未实现';
                    break;
                case 502:
                    error.message = '网络错误';
                    break;
                case 503:
                    error.message = '服务不可用';
                    break;
                case 504:
                    error.message = '网络超时';
                    break;
                case 505:
                    error.message = 'http版本不支持该请求';
                    break;
                default:
                    error.message = `未知错误${error.response.status}`;
            }
        } else {
            error.message = "连接到服务器失败";
        }
        return Promise.reject(error);
    }
)
 
/*网络请求部分*/
// export function postLogin(params={}){
//     return new Promise((resolve, reject) => {
//         httpService({
//             url: `${baseURL}/system/record/login`,
//             method: 'post',
//             params: params
//         }).then(response => {
//             resolve(response);
//         }).catch(error => {
//             reject(error);
//         });
//     });
// }
//分页查询报警记录
export function listOperation(params={}){
    return new Promise((resolve,reject)=>{
        httpService({
            url:`${baseURL}/system/warnTable/getPolicePage`,
            method:'get',
            params:params
        }).then(response => {
            resolve(response);
        }).catch(error => {
            reject(error);
        });
    });
}
//根据系统查询报警表
export function systemQuery(params={}){
    return new Promise((resolve,reject)=>{
        httpService({
            url:`${baseURL}/alarmSystem/data/systemQuery`,
            method:'get',
            params:params
        }).then(response => {
            resolve(response);
        }).catch(error => {
            reject(error);
        });
    });
}
 //根据系统查询实验配置表
 export function testQuery(params={}){
    return new Promise((resolve,reject)=>{
        httpService({
            url:`${baseURL}/system/table/testQuery`,
            method:'get',
            params:params
        }).then(response => {
            resolve(response);
        }).catch(error => {
            reject(error);
        });
    });
}
//根据时间段请求曲线图数据
export function getCurve(params={}){
    return new Promise((resolve,reject)=>{
        httpService({
            url:`${baseURL}/system/data/getCurve`,
            method:'get',
            params:params
        }).then(response => {
            resolve(response);
        }).catch(error => {
            reject(error);
        });
    });
}
//根据系统时间段获取原始数据
export function getExcelData(params = {}) {
    return new Promise((resolve, reject) => {
        httpService({
            url: `${baseURL}/system/data/getExcelData`,
            method: 'get',
            params: params
        }).then(response => {
            console.log("🌐 原始响应数据：", response);  // ✅ 打印这里！
            resolve(response);
        }).catch(error => {
            console.error("❌ 请求失败：", error);
            reject(error);
        });
    });
}

//分页请求数据历史记录
export function getListPage(params={}){
    return new Promise((resolve,reject)=>{
        httpService({
            url:`${baseURL}/system/data/getListPage`,
            method:'get',
            params:params
        }).then(response => {
            resolve(response);
        }).catch(error => {
            reject(error);
        });
    });
}
export function testDeviceQuery(params={}){
    return new Promise((resolve,reject)=>{
        axios.post(`${baseURL}/system/table/testDeviceQuery`, params, {  
            headers: {  
              'Content-Type': 'application/json'  
            }  
          })  
          .then(response => {  
            resolve(response);
          })  
          .catch(error => {  
            reject(error); 
          });
    });
}
export default {
    baseURL,
    listOperation,
    systemQuery,
    testQuery,
    testDeviceQuery,
    getCurve,
    getListPage,
    getExcelData,
}